<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
         //  是一种轻量级的数据交换格式 JSON是一种比较严格的数据格式
    var json1 = '[{name:"刘德华",age:59,sex:"男"},{name:"张学友",age:59,sex:"男"}]';
        // JSON.parse() 是 ES5 添加的方法
    // console.log(JSON.parse(json1)); // 格式不严谨会报错

    console.log(eval(json1)); //可生成JSON 对象

     // eval() 可以 通过字符串添加 js 代码
    // var a = 10;
    // console.log(a);
    // 可以执行 字符串代码 
    eval('var a = 10'); //声明的变量 是全局变量
    eval('console.log(a);')

    //使用 eval() 转JSON 格式的对象注意事项
    //JSON 格式有[.....] 和{...}
    var json2 = "[{name: '刘德华'},{name:'张学友'}]";
    var jsonObj1 = eval(json2);
    console.log(jsonObj1);

    var json3 = "{name: '刘德华'}"
    var jsonObj2 = eval(json3);
    //{name: 刘德华}

    console.log(jsonObj2);//刘德华

     /*************************************************
    注意： js中 JSON 格式为 松散模式 转换为 JSON 对象需要 在 eval 函数中 加 小括号
    */ 
    var jsonObj3 = eval('('+json3+')');
    //{name: 刘德华}
    console.log(jsonObj3); //{name:"刘德华"}


    /**************************************************************/
    
    //严格模式的JSON
    var j6 = '[{"name":"刘德华","age":18}]'
    console.log(eval(j6));
    console.log(JSON.parse(j6));

    //建议 以后使用 JSON 字符串 一定使用严格模式的json 字符串

    </script>
</body>
</html>